Part 1

Row

Accidents per year

Accidents by weekday

Row

Accidents by hour

Deaths by hour

---
title: "Motor Vehicle Accidents in Victoria"
output: 
  flexdashboard::flex_dashboard:
        vertical_layout: scroll
        orientation: rows
        source_code: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(lubridate)
library(janitor)
library(knitr)
library(kableExtra)
library(plotly)
```

```{r load-data}
accidents <- read_csv("data/ACCIDENT.csv") %>%
  clean_names()

locations <- read_csv("data/ACCIDENT_LOCATION.csv") %>%
  clean_names()

nodes <- read_csv("data/NODE.csv") %>%
  clean_names()

persons <- read_csv("data/PERSON.csv") %>%
  clean_names()

vehicles <- read_csv("data/VEHICLE.csv") %>%
  clean_names()
```

```{r create-year-hour-day}
accidents <- accidents %>%
  mutate(accidentdate = dmy(accidentdate),
         Year = year(accidentdate),
         Hour = hour(accidenttime),
         Weekday = wday(accidentdate, 
                        label = TRUE,
                        abbr = FALSE))
```



Part 1 {data-icon="fa-battery-quarter"}
===================================== 

Row {data-width=600}
--------------------------------
### Accidents per year

```{r chen1}
accidents_per_year <- accidents %>%
  count(Year) %>% 
  ggplot(aes(x = Year, 
             y = n)) +
  geom_line() +
  xlab("Year(2006 ~ 2020)") +
  ylab("Number of Car Accidents") +
  geom_point() 

ggplotly( accidents_per_year)
```

### Accidents by weekday

```{r chen2}
accidents %>%
  count(Weekday,
        name = "Accidents") %>% 
  ggplot(aes(x = Weekday, 
             y = Accidents)) +
  geom_bar(stat = "identity", 
           fill = "#999999") +
  ylab("Number of Car Accidents") +
  geom_text(aes(label = Accidents), 
            vjust = -1, 
            color = "black", 
            size = 3)
```


Row {data-width=600}
--------------------------------
### Accidents by hour

```{r chen3}
accidents_by_hour <- accidents %>%
  count(Hour,
        name = "Accidents") 

p3 <- accidents_by_hour %>%
  ggplot(aes(x = Hour, 
             y = Accidents)) + 
  geom_line() +
  xlab("Time") +
  ylab("Number of Car Accidents") +
  geom_point()

ggplotly(p3)
```


### Deaths by hour

```{r deaths-by-hour}
deaths_by_hour <- accidents %>%
  group_by(Hour) %>%
  tally(no_persons_killed,
        name = "Deaths")
```

```{r deaths-per-accident-by-hour}
deaths_per_accident_by_hour <- accidents_by_hour %>%
  left_join(deaths_by_hour) %>%
  mutate(Deaths_per_accident = round(Deaths/Accidents, digit = 4))
```

```{r chen4}
p4 <- deaths_per_accident_by_hour %>%
  ggplot(aes(x = Hour, 
             y = Deaths_per_accident)) +
  geom_line() +
  xlab("Time") +
  ylab("Death Rate of Car Accidents") +
  geom_point()  
ggplotly(p4)
```